#ifndef GDN_KEY_H
#define GDN_KEY_H

namespace gdn
{
	namespace Key
	{
		enum Code
		{
			A = 'a',
			B = 'b',
			C = 'c',
			D = 'd',
			E = 'e',
			F = 'f',
			G = 'g',
			H = 'h',
			I = 'i',
			J = 'j',
			K = 'k',
			L = 'l',
			M = 'm',
			N = 'n',
			O = 'o',
			P = 'p',
			Q = 'q',
			R = 'r',
			S = 's',
			T = 't',
			U = 'u',
			V = 'v',
			W = 'w',
			X = 'x',
			Y = 'y',
			Z = 'z',

			Number0 = '0',
			Number1 = '1',
			Number2 = '2',
			Number3 = '3',
			Number4 = '4',
			Number5 = '5',
			Number6 = '6',
			Number7 = '7',
			Number8 = '8',
			Number9 = '9',

			UpArrow,
			LeftArrow,
			RightArrow,
			DownArrow,

			Escape = 256,

			Comma,
			Period,
			Semicolon,
			SingleQuote,
			BackQuote, // Same key as the tilde key

			LeftBracket,
			RightBracket,

			Slash,
			Backslash,

			Dash,
			Equals,

			Numpad0,
			Numpad1,
			Numpad2,
			Numpad3,
			Numpad4,
			Numpad5,
			Numpad6,
			Numpad7,
			Numpad8,
			Numpad9,

			NumpadDivide,
			NumpadMultiply,
			NumpadSubtract,
			NumpadPlus,

			Shift,
			Control,
			Alt,

			Count
		};
	}
}

#endif // GDN_KEY_H
